package protocol;

import java.io.Serializable;

public enum Command implements Serializable {
	None(0),
	//client calls
	C_GetInfo(1),
	C_JoinServer(2),
	C_ReadyToPlay(3),
	C_NotReadyToPlay(4),
	C_ChangeSettings(5),
	C_KickPlayer(6),
	C_SendMessage(7),
	C_LeftTheGame(8),
	C_SyncMessages(9),
	C_RequestPreGameInfo(10),
	C_SilentAdminLogin(11),
	C_AdminLogin(12),
	C_ChangedSlot(13),
	C_SwitchSlotUp(14),
	C_SwitchSlotDown(15),
	C_StartTheGame(16),
	C_ReadyToStartRound(17),
	//server calls
	S_SendServerInfo(101),
	S_JoinedServer(102),
	S_JoinFailed(103),
	S_SendPreGameInfo(104),
	S_BroadcastMessage(105),
	S_KickPlayer(106),
	S_SyncMessages(107),
	S_BecameAdministrator(108),
	S_ServerShutdown(109),
	S_StartGameFailed(110),
	S_GameStarts(111),
	S_RoundAboutToStart(112),
	
	//game related
	//client calls
	C_InitialPlay(201),
	C_PlayCards(202),
	C_DrawCards(203),
	C_Wait(204),
	C_SetDemand(205),
	C_SetColor(206),
	C_SkipInitial(207),
	C_Afterdraw(208),
	//server calls
	S_InitialGiveOut(301),
	S_PostGiveOut(302),
	S_RequestJackSelection(303),
	S_RequestAceSelection(304),
	S_DemandStarted(305),
	S_ColorSet(306),
	S_NextPlayer(307),
	S_CardsPlayed(308), 
	S_PlayerAfterdrawn(309), 
	S_PlayerPeekCard(310),
	S_DrawnCards(311),
	S_ClearDemand(312), 
	S_UpdateCardPenalty(313), 
	S_UpdateWaitPenalty(314),
	S_SetWaitTime(315),
	S_UpdateFreshCount(316),
	S_UsedRefreshed(317)
	;
	
	private final int value;
    private Command(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}
